在Golang中,內存管理是自動化的,由垃圾回收器(Garbage Collector)負責。垃圾回收的主要目標是檢測和回收不再使用的內存,以防止內存洩漏並提高應用程序的性能。
Golang的垃圾回收器自動識別不再被引用的對象,並釋放其佔用的內存,無需手動管理。
過程中,使用"停止-復始"(Stop-The-World),即暫停應用程序的所有執行緒以進行回收。而此設計為低延遲,可以快速執行,並在短時間內恢復應用程序的運行。
runtime 提供了與程序運行時相關的功能。這邊舉例一些
import "runtime"
// 手動觸發垃圾回收
runtime.GC()
import (
"fmt"
"runtime"
)
var memStats runtime.MemStats
// 讀取內存統計信息
runtime.ReadMemStats(&memStats)
fmt.Printf("分配的內存:%d bytes\n", memStats.Alloc)
import "runtime"
// 主動釋放未使用的操作系統內存
runtime.FreeOSMemory()